package org.icsdt.sp;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import org.icsdt.sp.service.BDService;

import android.content.Context;
import android.content.Intent;
import android.util.Log;

import com.google.gson.Gson;

public class Servico {
    private static final String TAG = "Servico";

    //--------SOLICITACAO AO SERVIDOR---------------------------
    //Solicita registro do Tablet
    public static void regTablet(Context contexto, String registration_id,String servidor)  {
	Map<String, String> parametros = new HashMap<String, String>();
	parametros.put("servico", "regTablet");
	parametros.put("modelo", android.os.Build.MODEL);
	parametros.put("nome", android.os.Build.HOST);
	parametros.put("registration_id", registration_id);
	parametros.put("servidor", servidor);
	regMensagem(contexto,parametros);
    }

    //Solicita registro do Logon
    public static void regLogon(Context contexto, int perito_id)  {
	Map<String, String> parametros = new HashMap<String, String>();
	parametros.put("servico", "regLogon");
	parametros.put("tablet_id", BDService.getReg("tablet_id"));
	parametros.put("perito_id", String.valueOf(perito_id));
	regMensagem(contexto,parametros);
    }

    //Solicita registro do Logoff
    public static void regLogoff(Context contexto)  {
	Map<String, String> parametros = new HashMap<String, String>();
	parametros.put("servico", "regLogoff");
	parametros.put("logon_id", BDService.getReg("logon_id"));
	regMensagem(contexto,parametros);
    }

    //Solicita registro do Plantao
    public static void regPlantao(Context contexto) {
	Map<String, String> parametros = new HashMap<String, String>();
	parametros.put("servico", "regPlantao");
	parametros.put("logon_id", BDService.getReg("logon_id"));
	parametros.put("equipe_id", BDService.getReg("equipe_id"));
	regMensagem(contexto,parametros);
    }

    //Solicita registro do Deslocamento
    public static void regDeslocamento(Context contexto, String acao, String solicitacao_id)  {
	Map<String, String> parametros = new HashMap<String, String>();
	parametros.put("servico", "regDeslocamento");
	parametros.put("plantao_id", BDService.getReg("plantao_id"));
	parametros.put("solicitacao_id", solicitacao_id);
	parametros.put("acao", acao);
	regMensagem(contexto,parametros);
    }
    //Obter Mensagens do servidor 
    public static void regGetMensagem(Context contexto)  {
	Map<String, String> parametros = new HashMap<String, String>();
	parametros.put("servico", "getMensagem");
	parametros.put("tablet_id", BDService.getReg("tablet_id"));
	regMensagem(contexto,parametros);
    }

    private static void regMensagem(Context contexto, Map<String, String> parametros) {
	try {
	    BDService.setMensagem(new Gson().toJson(parametros));
	    contexto.startService(new Intent(contexto, MsgIntentService.class));
	} catch (SQLException e) {Log.e(TAG,"Erro no Banco de Dados",e);}
    } 
}
